const natural = require('natural');
const tokenizer = new natural.WordTokenizer();

// 关键词提取函数
function extractKeywords(text, numKeywords) {
  // 这里只是一个简化的关键词提取示例，实际应用中可能需要更复杂的算法
  const words = tokenizer.tokenize(text);
  const wordFrequencies = {};

  for (let word of words) {
    word = word.toLowerCase();
    if (wordFrequencies[word]) {
      wordFrequencies[word]++;
    } else {
      wordFrequencies[word] = 1;
    }
  }

  // 提取频率最高的关键词
  const sortedWords = Object.entries(wordFrequencies)
    .sort((a: any, b: any) => b[1] - a[1])
    .slice(0, numKeywords)
    .map(entry => entry[0]);

  return sortedWords;
}

// 文本分析并生成结构性笔记的函数
function generateStructuredNotes(text) {
  // 假设文本已按段落分割
  const paragraphs = text.split('\n\n');
  const notes = [];

  for (let paragraph of paragraphs) {
    // 提取关键词
    const keywords = extractKeywords(paragraph, 3);

    // 提取段落的主题（这里简化处理，实际应用中可能更复杂）
    const topic = keywords[0] || '未知主题';

    // 将关键词和主题添加到笔记中
    notes.push({
      topic,
      keywords,
      content: paragraph
    });
  }

  return notes;
}

// 示例文本
const text = `
主要讨论人工智能的发展和应用。人工智能正在改变我们的生活和工作方式，带来了很多便利。关注自然语言处理的技术进展。自然语言处理是人工智能领域的一个重要分支，可以实现机器理解人类语言。
`;
let myHandler = async function (event, context, callback, logger) {
  logger.info(event);
  const structuredNotes = generateStructuredNotes(text);
  // do something here

  callback({
    code: 0,
    desc: structuredNotes
  });
};

export { myHandler };